<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>PaleGem: IPaleGemFramework Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">PaleGem
   &#160;<span id="projectnumber">0.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_i_pale_gem_framework-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">IPaleGemFramework Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface for the game to the engine.  
 <a href="class_i_pale_gem_framework.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_pale_gem_framework_8h_source.html">IPaleGemFramework.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for IPaleGemFramework:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_i_pale_gem_framework.png" usemap="#IPaleGemFramework_map" alt=""/>
  <map id="IPaleGemFramework_map" name="IPaleGemFramework_map">
<area href="classpg_pale_gem_framework.html" alt="pgPaleGemFramework" shape="rect" coords="0,56,139,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad0723b0f1d9f8b8e4baeb1916000f00a"><td class="memItemLeft" align="right" valign="top">virtual HRESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#ad0723b0f1d9f8b8e4baeb1916000f00a">pgInit</a> (HINSTANCE hInstance, int cmdShow, LPCWSTR lpGameTitle)=0</td></tr>
<tr class="memdesc:ad0723b0f1d9f8b8e4baeb1916000f00a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises the game engine and creates a game window.  <a href="#ad0723b0f1d9f8b8e4baeb1916000f00a">More...</a><br/></td></tr>
<tr class="separator:ad0723b0f1d9f8b8e4baeb1916000f00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a265588dcd93528d4449aa244fed92f56"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a265588dcd93528d4449aa244fed92f56">pgUpdate</a> ()=0</td></tr>
<tr class="memdesc:a265588dcd93528d4449aa244fed92f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the engine and its subsystems.  <a href="#a265588dcd93528d4449aa244fed92f56">More...</a><br/></td></tr>
<tr class="separator:a265588dcd93528d4449aa244fed92f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c0722e2ecb292f82771bfc4dde2c92b"><td class="memItemLeft" align="right" valign="top">virtual HRESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a7c0722e2ecb292f82771bfc4dde2c92b">pgExit</a> ()=0</td></tr>
<tr class="memdesc:a7c0722e2ecb292f82771bfc4dde2c92b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shuts the engine down.  <a href="#a7c0722e2ecb292f82771bfc4dde2c92b">More...</a><br/></td></tr>
<tr class="separator:a7c0722e2ecb292f82771bfc4dde2c92b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16db0befad9f653ef6217aecba83087c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a16db0befad9f653ef6217aecba83087c">pgDoMessageLoop</a> ()=0</td></tr>
<tr class="memdesc:a16db0befad9f653ef6217aecba83087c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enters the windows message loop.  <a href="#a16db0befad9f653ef6217aecba83087c">More...</a><br/></td></tr>
<tr class="separator:a16db0befad9f653ef6217aecba83087c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f309099c288fbd27be3a1131107b056"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a8f309099c288fbd27be3a1131107b056">pgDoMessageLoop</a> (int(*UpdateFunction)(float fFrameTime))=0</td></tr>
<tr class="memdesc:a8f309099c288fbd27be3a1131107b056"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enters the windows message loop and calls UpdateFunction before updating the engine.  <a href="#a8f309099c288fbd27be3a1131107b056">More...</a><br/></td></tr>
<tr class="separator:a8f309099c288fbd27be3a1131107b056"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc4e02c4fdca1ebdf3f929e64c974d55"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#afc4e02c4fdca1ebdf3f929e64c974d55">pgCheckForMultipleInstances</a> (LPCWSTR lpGameTitle)=0</td></tr>
<tr class="memdesc:afc4e02c4fdca1ebdf3f929e64c974d55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if there's allready an instance of the game running.  <a href="#afc4e02c4fdca1ebdf3f929e64c974d55">More...</a><br/></td></tr>
<tr class="separator:afc4e02c4fdca1ebdf3f929e64c974d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5cec8d061abddec90a2bb9d60328ab0"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#ab5cec8d061abddec90a2bb9d60328ab0">pgCheckHardDiskSpace</a> (const DWORDLONG spaceNeeded)=0</td></tr>
<tr class="memdesc:ab5cec8d061abddec90a2bb9d60328ab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks available memory on harddisk and returns true if theres enough.  <a href="#ab5cec8d061abddec90a2bb9d60328ab0">More...</a><br/></td></tr>
<tr class="separator:ab5cec8d061abddec90a2bb9d60328ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a767e1c3dbaf56507a3abef6908cb5fe7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a767e1c3dbaf56507a3abef6908cb5fe7">pgCheckRAM</a> (const DWORDLONG spaceNeeded)=0</td></tr>
<tr class="separator:a767e1c3dbaf56507a3abef6908cb5fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e2f8a348cedf1a2e5a0a15e96df3a4f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_pale_gem_framework.html#a5e2f8a348cedf1a2e5a0a15e96df3a4f">pgCheckAvailRAM</a> (const DWORDLONG spaceNeeded)=0</td></tr>
<tr class="separator:a5e2f8a348cedf1a2e5a0a15e96df3a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface for the game to the engine. </p>
<h2>General information:</h2>
<p>The PaleGem engine framework represents the engine at its toplayer. Without it, the engine will not work and also isn't usable in the first place. The framework is a singleton class and therefore should not be instanced. Instead the makro g_PG_pPaleGemFramework can be used to access the framework and its subsystems. Note that in the future (or if the future has come already, now) g_PG_pPaleGemFramework and g_PG_pSGameInfo are the only two globally accessible interfaces for the engine. Any other subsystems reside inside the framework, however makros are provided to ease accession of these systems. These makros are:</p>
<ul>
<li>g_PG_pRenderer <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classpg_render.html">pgRender</a></dd></dl>
</li>
<li>g_PG_pTimer <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classpg_timer.html">pgTimer</a></dd></dl>
</li>
<li>g_PG_pFrameworkEventManager <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classpg_event_manager.html" title="PaleGem&#39;s generic event manager.">pgEventManager</a></dd></dl>
</li>
<li>listend</li>
</ul>
<h2>Initializing the framework:</h2>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="struct_s_game_info.html">SGameInfo</a></dd></dl>
<p>BEFORE you call <a class="el" href="class_i_pale_gem_framework.html#ad0723b0f1d9f8b8e4baeb1916000f00a" title="Initialises the game engine and creates a game window.">pgInit()</a>, you will have to provide some information for the framework. This is done by calling g_PG_pSGameInfo-&gt;SetInfo(). If you don't provide a window handle (provide NULL for the hWindow param) the engine will create a window and name its class and the window itself after the game title you provided. If you fail to call g_PG_pSGameInfo-&gt;SetInfo(), the game info subsystem will try to use defaults. This is not supported and no warranty whatsoever is provided for it to function.</p>
<h2>Updating your game:</h2>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="_i_event_manager_8h.html#acebeb2e728025f3444b405355a3f8e92" title="The actual event.">EVENT_NAME</a></dd></dl>
<p>There are several ways to go about updating the engine and your game. You can either:</p>
<ul>
<li>call <a class="el" href="class_i_pale_gem_framework.html#a16db0befad9f653ef6217aecba83087c" title="Enters the windows message loop.">pgDoMessageLoop()</a> AFTER you called <a class="el" href="class_i_pale_gem_framework.html#ad0723b0f1d9f8b8e4baeb1916000f00a" title="Initialises the game engine and creates a game window.">pgInit()</a>. This will enter a while loop inside the engine which will handle the windows message loop. It will call <a class="el" href="class_i_pale_gem_framework.html#a265588dcd93528d4449aa244fed92f56" title="Updates the engine and its subsystems.">pgUpdate()</a> which itself is responsible for the actual updating of the engine and its subsystems. By using this method the only way for your game to receive updates is to register a class with g_PG_pPaleGemFremawork-&gt;GetFrameworkEventManager()-&gt;RegisterListener().</li>
</ul>
<ul>
<li>call pgUpdate to manually update the engine in your own windows message loop.</li>
</ul>
<ul>
<li>call pgDoMessageLoop(int (*Update) (float frameTime)), where Update is a function you provide. This way you don't need to use the framework event manager to update your game.</li>
</ul>
<ul>
<li>call each subsystem's update function manually in your own message loop. This might just be the best solution as you can control precisely when which system will be updated. <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classpg_pale_gem_framework.html#a12b9a4df14933e5bc2b41e9ceb081c60" title="Updates the engine and its subsystems.">pgPaleGemFramework::pgUpdate()</a> </dd></dl>
</li>
</ul>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a5e2f8a348cedf1a2e5a0a15e96df3a4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool IPaleGemFramework::pgCheckAvailRAM </td>
          <td>(</td>
          <td class="paramtype">const DWORDLONG&#160;</td>
          <td class="paramname"><em>spaceNeeded</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a3158f62dccb47ed723eafec416162eb2">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="afc4e02c4fdca1ebdf3f929e64c974d55"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool IPaleGemFramework::pgCheckForMultipleInstances </td>
          <td>(</td>
          <td class="paramtype">LPCWSTR&#160;</td>
          <td class="paramname"><em>lpGameTitle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks if there's allready an instance of the game running. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lpGameTitle</td><td>Name of the game to check for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if there's already an instance running </dd></dl>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a1431d21992af42e6fd0ed3a3e9ee2614">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="ab5cec8d061abddec90a2bb9d60328ab0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool IPaleGemFramework::pgCheckHardDiskSpace </td>
          <td>(</td>
          <td class="paramtype">const DWORDLONG&#160;</td>
          <td class="paramname"><em>spaceNeeded</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks available memory on harddisk and returns true if theres enough. </p>
<p>spaceNeeded The space to check for in bytes </p>
<dl class="section return"><dt>Returns</dt><dd>True if there's enough space to host spaceNeeded </dd></dl>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#af75e15c52ee41abbf38ee2a754100e3a">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="a767e1c3dbaf56507a3abef6908cb5fe7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool IPaleGemFramework::pgCheckRAM </td>
          <td>(</td>
          <td class="paramtype">const DWORDLONG&#160;</td>
          <td class="paramname"><em>spaceNeeded</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a6f4be711dc51000bd57c7a72a3b015eb">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="a16db0befad9f653ef6217aecba83087c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void IPaleGemFramework::pgDoMessageLoop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enters the windows message loop. </p>
<dl class="section see"><dt>See Also</dt><dd>Updating your game </dd></dl>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a80308dc4904ac802855a65a4628d9b36">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="a8f309099c288fbd27be3a1131107b056"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void IPaleGemFramework::pgDoMessageLoop </td>
          <td>(</td>
          <td class="paramtype">int(*)(float fFrameTime)&#160;</td>
          <td class="paramname"><em>UpdateFunction</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enters the windows message loop and calls UpdateFunction before updating the engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">UpdateFunction</td><td>Pointer to your game's update function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd>Updating your game </dd></dl>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#af9fe0abcf9606ebcea8fa752fd1df9e5">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="a7c0722e2ecb292f82771bfc4dde2c92b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual HRESULT IPaleGemFramework::pgExit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Shuts the engine down. </p>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a865c1af190c75c69d0cf7855957f038d">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="ad0723b0f1d9f8b8e4baeb1916000f00a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual HRESULT IPaleGemFramework::pgInit </td>
          <td>(</td>
          <td class="paramtype">HINSTANCE&#160;</td>
          <td class="paramname"><em>hInstance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cmdShow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPCWSTR&#160;</td>
          <td class="paramname"><em>lpGameTitle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initialises the game engine and creates a game window. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hInstance</td><td>HINSTANCE arg of WinMain </td></tr>
    <tr><td class="paramname">cmdShow</td><td>nCmdShow of WinMain </td></tr>
    <tr><td class="paramname">lpGameTitle</td><td>Name of the game, will also be name of the windowclass and windowtitle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>S_OK if everything went well otherwise see log </dd></dl>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a46312d0a1988e49366fad2582e0b7b25">pgPaleGemFramework</a>.</p>

</div>
</div>
<a class="anchor" id="a265588dcd93528d4449aa244fed92f56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void IPaleGemFramework::pgUpdate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the engine and its subsystems. </p>

<p>Implemented in <a class="el" href="classpg_pale_gem_framework.html#a12b9a4df14933e5bc2b41e9ceb081c60">pgPaleGemFramework</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>Inc/<a class="el" href="_i_pale_gem_framework_8h_source.html">IPaleGemFramework.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 1 2013 11:55:07 for PaleGem by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>
